Clover coverage report - Prayer Portlets - 0.1-rc4-SNAPSHOT
Coverage timestamp: Thu Aug 19 2004 18:34:34 EDT
file stats: LOC: 235   Methods: 19
NCLOC: 178   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
PrayerRequestSearchPortlet.java 12.5% 15.8% 31.6% 18%
coverage coverage
 1   
 package org.marketchangers.prayer.portlet;
 2   
 
 3   
 import java.io.IOException;
 4   
 import java.util.ArrayList;
 5   
 import java.util.Hashtable;
 6   
 import java.util.Iterator;
 7   
 import java.util.Map;
 8   
 
 9   
 import javax.portlet.ActionRequest;
 10   
 import javax.portlet.ActionResponse;
 11   
 import javax.portlet.Portlet;
 12   
 import javax.portlet.PortletConfig;
 13   
 import javax.portlet.PortletContext;
 14   
 import javax.portlet.PortletException;
 15   
 import javax.portlet.PortletRequest;
 16   
 import javax.portlet.PortletRequestDispatcher;
 17   
 import javax.portlet.RenderRequest;
 18   
 import javax.portlet.RenderResponse;
 19   
 
 20   
 import org.marketchangers.Environment;
 21   
 import org.marketchangers.PortalUserManager;
 22   
 import org.marketchangers.ServiceLocator;
 23   
 import org.marketchangers.prayer.PrayerComment;
 24   
 import org.marketchangers.prayer.PrayerRequest;
 25   
 import org.marketchangers.prayer.PrayerRequestManager;
 26   
 import org.marketchangers.prayer.PrayerRequestQuery;
 27   
 
 28   
 /**
 29   
  * @author <a href="mailto:ypak@wc-group.com">Yong Pak</a>
 30   
  * @author <a href="mailto:mtodd@wc-group.com">Matthew Todd</a>
 31   
  * @author <a href="mailto:jniu@wc-group.com">Jianshuo Niu</a>
 32   
  */
 33   
 public class PrayerRequestSearchPortlet implements Portlet {
 34   
     private static final Integer NO_INTEGER = new Integer(Integer.MIN_VALUE);
 35   
     private PortletContext context;
 36   
 
 37   
     // ------------------------------------------------------------ Portlet API
 38  2
     public void init(PortletConfig config) throws PortletException {
 39  2
         this.context = config.getPortletContext();
 40   
     }
 41   
 
 42  2
     public void processAction(ActionRequest request, ActionResponse response)
 43   
         throws PortletException, IOException {
 44  2
         if (getString(request, "userAction").equals("addComment")) {
 45  0
             addComment(request, response);
 46   
         } else {
 47  2
             doSearch(request, response);
 48   
         }
 49   
     }
 50   
 
 51  0
     public void render(RenderRequest request, RenderResponse response)
 52   
         throws PortletException, IOException {
 53  0
         if (getInteger(request, "prayerId").equals(NO_INTEGER)) {
 54  0
             if (getString(request, "userAction").equals("report")) {
 55  0
                 renderReport(request, response);
 56   
             } else {
 57  0
                 renderSearchBoxAndList(request, response);
 58   
             }
 59   
         } else {
 60  0
             renderSingleRequest(request, response);
 61   
         }
 62   
     }
 63   
 
 64  0
     public void destroy() {
 65   
     }
 66   
 
 67   
     // -------------------------------------------------------- Private Methods
 68  0
     private void addComment(ActionRequest request, ActionResponse response) {
 69  0
         Integer prayerId = getInteger(request, "prayerId");
 70   
 
 71  0
         if (!prayerId.equals(NO_INTEGER)) {
 72  0
             PrayerRequestManager manager = getPrayerRequestManager();
 73  0
             String user = request.getRemoteUser();
 74   
 
 75  0
             PrayerComment comment = new PrayerComment();
 76  0
             comment.setAuthorUserId(user);
 77  0
             comment.setContent(getString(request, "comment"));
 78  0
             comment.setParentRequest(
 79   
                 manager.getPrayerRequestById(user, prayerId));
 80  0
             comment.setPostDate(getEnvironment().getCurrentDate());
 81  0
             if(comment.getContent()==null ||comment.getContent().trim().equalsIgnoreCase("")){
 82  0
                 response.setRenderParameter("hasComments","false");    
 83   
             }else{
 84  0
                 response.setRenderParameter("hasComments","true");
 85  0
                 manager.addComment(comment);
 86   
             }
 87   
 
 88  0
             response.setRenderParameter("prayerId", prayerId.toString());
 89   
         }
 90   
     }
 91   
 
 92  0
     private void copySessionAttributeToRequest(String key, PortletRequest r) {
 93  0
         r.setAttribute(key, r.getPortletSession().getAttribute(key));
 94   
     }
 95   
 
 96  2
     private void doSearch(ActionRequest request, ActionResponse response) {
 97  2
         PrayerRequestManager manager = getPrayerRequestManager();
 98  2
         String user = request.getRemoteUser();
 99   
 
 100  2
         PrayerRequestQuery query =
 101   
             new PrayerRequestQuery(request.getParameterMap());
 102  2
         if(query.hasValidDate()){
 103   
         
 104  2
             request.getPortletSession().setAttribute(
 105   
             "prayerRequests",
 106   
             manager.search(user, query));
 107  2
             response.setRenderParameter("validSearch","true");
 108   
         }else{
 109  0
             response.setRenderParameter("validSearch","false");
 110  0
             request.getPortletSession().setAttribute(
 111   
                         "prayerRequests",
 112   
                         new ArrayList());
 113   
         }
 114   
     }
 115   
 
 116  0
     private Map getCommentAuthors(Integer id, PrayerRequestManager manager) {
 117  0
         Map results = new Hashtable();
 118   
 
 119  0
         Iterator comments = manager.getCommentsByPrayerId(id).iterator();
 120  0
         while (comments.hasNext()) {
 121  0
             String userId = ((PrayerComment) comments.next()).getAuthorUserId();
 122  0
             results.put(userId, getUserManager().lookupUserById(userId));
 123   
         }
 124   
 
 125  0
         return results;
 126   
     }
 127   
 
 128  0
     private Environment getEnvironment() {
 129  0
         return (Environment) getServiceLocator().get(Environment.class);
 130   
     }
 131   
 
 132  0
     private Integer getInteger(PortletRequest request, String key) {
 133  0
         try {
 134  0
             return new Integer(String.valueOf(request.getParameter(key)));
 135   
         } catch (NumberFormatException nfe) {
 136  0
             return NO_INTEGER;
 137   
         }
 138   
     }
 139   
 
 140  2
     private PrayerRequestManager getPrayerRequestManager() {
 141  2
         return (PrayerRequestManager) getServiceLocator().get(
 142   
             PrayerRequestManager.class);
 143   
     }
 144   
 
 145  0
     private PortletRequestDispatcher getRequestDispatcher(String path) {
 146  0
         return context.getRequestDispatcher(path);
 147   
     }
 148   
 
 149  0
     private Map getRequestorMap(String user, PrayerRequestManager manager) {
 150  0
         Map requestorMap = new Hashtable();
 151   
 
 152  0
         Iterator requestorUserIds =
 153   
             manager.getRequestorsForIntercessor(user).iterator();
 154   
 
 155  0
         PortalUserManager userManager = getUserManager();
 156   
 
 157  0
         while (requestorUserIds.hasNext()) {
 158  0
             String userId = (String) requestorUserIds.next();
 159  0
             requestorMap.put(userId, userManager.lookupUserById(userId));
 160   
         }
 161   
 
 162  0
         return requestorMap;
 163   
     }
 164   
 
 165  2
     private ServiceLocator getServiceLocator() {
 166  2
         return (ServiceLocator) context.getAttribute(ServiceLocator.KEY);
 167   
     }
 168   
 
 169  2
     private String getString(PortletRequest request, String key) {
 170  2
         return String.valueOf(request.getParameter(key));
 171   
     }
 172   
 
 173  0
     private PortalUserManager getUserManager() {
 174  0
         return (PortalUserManager) getServiceLocator().get(
 175   
             PortalUserManager.class);
 176   
     }
 177   
 
 178  0
     private void renderReport(RenderRequest req, RenderResponse res)
 179   
         throws PortletException, IOException {
 180   
 
 181  0
         PrayerRequestManager manager = getPrayerRequestManager();
 182  0
         String user = req.getRemoteUser();
 183   
 
 184  0
         copySessionAttributeToRequest("prayerRequests", req);
 185  0
         req.setAttribute("requestors", getRequestorMap(user, manager));
 186  0
         req.setAttribute("userRole", "intercessor");
 187   
 
 188  0
         getRequestDispatcher("/report.jsp").include(req, res);
 189   
     }
 190   
 
 191  0
     private void renderSearchBoxAndList(RenderRequest req, RenderResponse res)
 192   
         throws PortletException, IOException {
 193   
 
 194  0
         PrayerRequestManager manager = getPrayerRequestManager();
 195  0
         String user = req.getRemoteUser();
 196   
 
 197  0
         copySessionAttributeToRequest("prayerRequests", req);
 198  0
         req.setAttribute("requestors", getRequestorMap(user, manager));
 199  0
         req.setAttribute("userRole", "intercessor");
 200   
 
 201  0
         getRequestDispatcher("/prayerRequestSearch.jsp").include(req, res);
 202   
     }
 203   
 
 204  0
     private void renderSingleRequest(RenderRequest req, RenderResponse res)
 205   
         throws PortletException, IOException {
 206   
 
 207  0
         PrayerRequestManager requestManager = getPrayerRequestManager();
 208   
 
 209  0
         String user = req.getRemoteUser();
 210  0
         Integer prayerRequestId = getInteger(req, "prayerId");
 211   
 
 212  0
         PrayerRequest prayerRequest =
 213   
             requestManager.getPrayerRequestById(user, prayerRequestId);
 214   
 
 215  0
         req.setAttribute("prayerRequest", prayerRequest);
 216   
 
 217  0
         req.setAttribute(
 218   
             "prayerComments",
 219   
             requestManager.getCommentsByPrayerId(prayerRequestId));
 220   
 
 221  0
         req.setAttribute(
 222   
             "requestor",
 223   
             getUserManager().lookupUserById(
 224   
                 prayerRequest.getRequestorUserId()));
 225   
 
 226  0
         req.setAttribute(
 227   
             "commentAuthors",
 228   
             getCommentAuthors(prayerRequestId, requestManager));
 229   
 
 230  0
         req.setAttribute("userRole", "intercessor");
 231   
 
 232  0
         getRequestDispatcher("/singleRequest.jsp").include(req, res);
 233   
     }
 234   
 }
 235